2020-2021 Sunseeker Telemetry and Lighting System
aes_ex1_encryptDecrypt.c
Go to the documentation of this file.
1 /* --COPYRIGHT--,BSD
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * --/COPYRIGHT--*/
32 //******************************************************************************
53 //******************************************************************************
54 #include "driverlib.h"
55 
56 // Encrypted data
57 uint8_t DataAESencrypted[16] = {
58 0x00, 0x00, 0x00, 0x00,
59 0x00, 0x00, 0x00, 0x00,
60 0x00, 0x00, 0x00, 0x00,
61 0x00, 0x00, 0x00, 0x00
62 };
63 
64 // Decrypted data
65 uint8_t DataAESdecrypted[16] = {
66 0x00, 0x00, 0x00, 0x00,
67 0x00, 0x00, 0x00, 0x00,
68 0x00, 0x00, 0x00, 0x00,
69 0x00, 0x00, 0x00, 0x00
70 };
71 
72 
73 void main(void){
74  // stop watchdog
75  WDT_A_hold(WDT_A_BASE);
76 
77  uint8_t Data[16] = {
78  0x00, 0x11, 0x22, 0x33,
79  0x44, 0x55, 0x66, 0x77,
80  0x88, 0x99, 0xaa, 0xbb,
81  0xcc, 0xdd, 0xee, 0xff
82  };
83 
84  uint8_t CipherKey[16] = {
85  0x00, 0x01, 0x02, 0x03,
86  0x04, 0x05, 0x06, 0x07,
87  0x08, 0x09, 0x0a, 0x0b,
88  0x0c, 0x0d, 0x0e, 0x0f
89  };
90 
91  AES_enableInterrupt(AES_BASE);
92 
93  // Load a cipher key to module
94  AES_setCipherKey(AES_BASE, CipherKey);
95 
96  // Encrypt data with preloaded cipher key
97  AES_encryptData(AES_BASE, Data, DataAESencrypted);
98 
99  // Decrypt data with keys that were generated during encryption - takes 214 MCLK
100  // This function will generate all round keys needed for decryption first and then
101  // the encryption process starts
102  AES_decryptDataUsingEncryptionKey(AES_BASE, DataAESencrypted, DataAESdecrypted);
103 
104  // Array DataunAES should now contain the same data as array Data
105  while(1){};
106 }
uint16_t Data
uint8_t CipherKey[32]
uint8_t DataAESdecrypted[16]
uint8_t DataAESencrypted[16]
void main(void)